#pragma once
#include <string>
#include <vector>
#include "ZarthMath.h"
#include "Image.h"
#include "Surface.h"

class Scene
{
public:
	Scene(void); //create a default scene. This will be used for testing
	~Scene(void);

	Scene(std::string filename); //load a scene description from a file
	Image* Render(); //render an image using the default options

	bool Hit(Point eye, Vec3f d, HitRecord *hit);
private:
	Point eye;
	Vec3f gaze, up;
	float aspectratio; //the aspect ratio x/y
	float fovX; //the field of view angle in the x direction. in radians
	float fovY; //the field of view angle in the y direction. in radians
	float focal;
	int resX; //the number of pixels in the X direction
	int resY; //the number of pixels in the Y direction

	std::vector<Surface*> surfaces;
	

};

